import React, { useState } from 'react';

// 1. 是一个函数
// 3. 接受一个组件, 作为内部组件的子组件
export function xxx(Component) {
  // 2. 函数内定义组件, 组件内封装逻辑
  return function Mouse() {
    const [mouse, setMouse] = useState({ x: 0, y: 0 });
    const handleMouseMove = (e) => {
      setMouse({ x: e.clientX, y: e.clientY });
    };

    // 4. 内部组件, 通过父传子, 复用逻辑
    // 5. 子组件通过props接收逻辑
    return <Component mouse={mouse} handleMouseMove={handleMouseMove} />;
  };
}
